package com.crm.jpaandthymeleaf.service;

import com.crm.jpaandthymeleaf.entity.SysUser;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

/**
 * 用户业务层
 *
 * @author 周敬
 * @version 1.0
 * @packageName com.crm.jpaandthymeleaf.service
 * @fileName ISysUserService
 * @createTime 2021/12/15-20:45-星期三
 * @lastModify 2021/12/15-20:45-星期三
 */
public interface ISysUserService {
    /**
     * 用户登录
     *
     * @param usrName     用户名称
     * @param usrPassword 用户密码
     * @return
     */
    SysUser login(String usrName, String usrPassword);

    /**
     * 保存用户信息
     *
     * @param user 用户信息
     */
    void saveSysUser(SysUser user);

    /**
     * 根据用户ID删除用户
     *
     * @param usrId 用户ID
     */
    void deleteSysUser(Long usrId);

    /**
     * 根据用户ID获取用户信息
     *
     * @param usrId 用户ID
     * @return
     */
    SysUser getSysUser(Long usrId);

    /**
     * 根据用户名称和ID以及角色ID查询用户信息并且分页
     *
     * @param usrName  用户名称
     * @param roleId   角色ID
     * @param pageable 分页操作
     * @return
     */
    Page<SysUser> findSysUsers(String usrName, Long roleId, Pageable pageable);

    /**
     * 根据用户名查询用户
     * @param usrName
     * @return
     */
    SysUser getUserByUserName(String usrName);

}
